home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Borland Visual dBASE Professiona v7.0 / DATA1.CAB / Sample_dBASE / Win32api.wfm < prev   
Text File  |  1997-11-20  |  24KB  |  945 lines

  1. //--------------------------------------------------------------
  2. //
  3. //  Win32API.wfm
  4. //
  5. //  This form displays information about your system.
  6. //  It uses Windows API functions to gather and 
  7. //  display information from operating system and 
  8. //  registry.
  9. //
  10. //  Dependencies: <include>\win32api.h
  11. //               "structapi.h"
  12. //                structure.prg
  13. //                registry.prg 
  14. //
  15. //  Visual dBASE Samples Group
  16. //
  17. //  $Revision:   1.19  $
  18. //
  19. //  Copyright (c) 1997, Borland International, Inc. 
  20. //  All rights reserved.
  21. //
  22. //---------------------------------------------------------------
  23.  
  24. #define WIN32API_USER_H   // for metrics
  25. #define WIN32API_REG_H    // for registry
  26. #include <win32api.h>
  27. #include "structapi.h"
  28.  
  29. SET TALK OFF
  30. SET PROCEDURE TO "structure.prg" ADDITIVE
  31. SET PROCEDURE TO "registry.prg"  ADDITIVE
  32. ** END HEADER -- do not remove this line
  33. //
  34. // Generated on 11/01/97
  35. //
  36. parameter bModal
  37. local f
  38. f = new WIN32APIFORM()
  39. if (bModal)
  40.    f.mdi = false // ensure not MDI
  41.    f.readModal()
  42. else
  43.    f.open()
  44. endif
  45.  
  46. class WIN32APIFORM of FORM
  47.    with (this)
  48.       open = class::FORM_OPEN
  49.       scaleFontName = "MS Sans Serif"
  50.       scaleFontSize = 8
  51.       scaleFontBold = false
  52.       height = 15.0526
  53.       left = 1.5714
  54.       top = 0.0909
  55.       width = 75.1667
  56.       text = "Win32API "
  57.       mousePointer = 1
  58.       maximize = false
  59.       minimize = false
  60.    endwith
  61.  
  62.  
  63.    this.BUTTONOK = new PUSHBUTTON(this)
  64.    with (this.BUTTONOK)
  65.       onClick = {; this.form.close()}
  66.       height = 1.1818
  67.       left = 57.7143
  68.       top = 13.5
  69.       width = 14
  70.       text = "OK"
  71.       metric = 0
  72.       default = true
  73.       fontName = "MS Sans Serif"
  74.       fontSize = 8
  75.       group = true
  76.       colorNormal = "BtnText/BtnFace"
  77.       value = false
  78.    endwith
  79.  
  80.  
  81.    this.BOOK1 = new NOTEBOOK(this)
  82.    with (this.BOOK1)
  83.       onSelChange = class::BOOK1_ONSELCHANGE
  84.       height = 12
  85.       left = 1
  86.       top = 1
  87.       width = 73
  88.       metric = 0
  89.       colorNormal = "BtnFace"
  90.       fontName = "MS Sans Serif"
  91.       fontSize = 8
  92.       dataSource = 'ARRAY {"Metrics","Processor","BDE","PaintBox"}'
  93.    endwith
  94.  
  95.  
  96.    this.BOOK1.LABELMOUSE = new TEXT(this.BOOK1)
  97.    with (this.BOOK1.LABELMOUSE)
  98.       height = 1
  99.       left = 2
  100.       top = 2
  101.       width = 21
  102.       metric = 0
  103.       colorNormal = "BtnText"
  104.       fontName = "MS Sans Serif"
  105.       fontSize = 8
  106.       text = "Mouse Buttons:"
  107.    endwith
  108.  
  109.  
  110.    this.BOOK1.LABELWIDTH = new TEXT(this.BOOK1)
  111.    with (this.BOOK1.LABELWIDTH)
  112.       height = 1
  113.       left = 2
  114.       top = 3
  115.       width = 21
  116.       metric = 0
  117.       colorNormal = "BtnText"
  118.       fontName = "MS Sans Serif"
  119.       fontSize = 8
  120.       text = "Max Client Width:"
  121.    endwith
  122.  
  123.  
  124.    this.BOOK1.LABELHEIGHT = new TEXT(this.BOOK1)
  125.    with (this.BOOK1.LABELHEIGHT)
  126.       height = 1
  127.       left = 2
  128.       top = 4
  129.       width = 21
  130.       metric = 0
  131.       colorNormal = "BtnText"
  132.       fontName = "MS Sans Serif"
  133.       fontSize = 8
  134.       text = "Max Client Height:"
  135.    endwith
  136.  
  137.  
  138.    this.BOOK1.LABELPEN = new TEXT(this.BOOK1)
  139.    with (this.BOOK1.LABELPEN)
  140.       height = 1
  141.       left = 2
  142.       top = 5
  143.       width = 21
  144.       metric = 0
  145.       colorNormal = "BtnText"
  146.       fontName = "MS Sans Serif"
  147.       fontSize = 8
  148.       text = "Pen Windows:"
  149.    endwith
  150.  
  151.  
  152.    this.BOOK1.VALUEMOUSE = new TEXT(this.BOOK1)
  153.    with (this.BOOK1.VALUEMOUSE)
  154.       height = 1
  155.       left = 25
  156.       top = 2
  157.       width = 16
  158.       metric = 0
  159.       colorNormal = "BtnText"
  160.       fontName = "MS Sans Serif"
  161.       fontSize = 8
  162.       text = "VALUEMOUSE"
  163.    endwith
  164.  
  165.  
  166.    this.BOOK1.LABELSOUNDS = new TEXT(this.BOOK1)
  167.    with (this.BOOK1.LABELSOUNDS)
  168.       height = 1
  169.       left = 2
  170.       top = 6
  171.       width = 21
  172.       metric = 0
  173.       colorNormal = "BtnText"
  174.       fontName = "MS Sans Serif"
  175.       fontSize = 8
  176.       text = "Show Sounds:"
  177.    endwith
  178.  
  179.  
  180.    this.BOOK1.VALUEWIDTH = new TEXT(this.BOOK1)
  181.    with (this.BOOK1.VALUEWIDTH)
  182.       height = 1
  183.       left = 25
  184.       top = 3
  185.       width = 16
  186.       metric = 0
  187.       colorNormal = "BtnText"
  188.       fontName = "MS Sans Serif"
  189.       fontSize = 8
  190.       text = "VALUEWIDTH"
  191.    endwith
  192.  
  193.  
  194.    this.BOOK1.VALUEHEIGHT = new TEXT(this.BOOK1)
  195.    with (this.BOOK1.VALUEHEIGHT)
  196.       height = 1
  197.       left = 25
  198.       top = 4
  199.       width = 16
  200.       metric = 0
  201.       colorNormal = "BtnText"
  202.       fontName = "MS Sans Serif"
  203.       fontSize = 8
  204.       text = "VALUEHEIGHT"
  205.    endwith
  206.  
  207.  
  208.    this.BOOK1.VALUEPEN = new TEXT(this.BOOK1)
  209.    with (this.BOOK1.VALUEPEN)
  210.       height = 1
  211.       left = 25
  212.       top = 5
  213.       width = 16
  214.       metric = 0
  215.       colorNormal = "BtnText"
  216.       fontName = "MS Sans Serif"
  217.       fontSize = 8
  218.       text = "VALUEPEN"
  219.    endwith
  220.  
  221.  
  222.    this.BOOK1.VALUESOUND = new TEXT(this.BOOK1)
  223.    with (this.BOOK1.VALUESOUND)
  224.       height = 1
  225.       left = 25
  226.       top = 6
  227.       width = 16
  228.       metric = 0
  229.       colorNormal = "BtnText"
  230.       fontName = "MS Sans Serif"
  231.       fontSize = 8
  232.       text = "VALUESOUND"
  233.    endwith
  234.  
  235.  
  236.    this.BOOK1.LABELPROCESSOR = new TEXT(this.BOOK1)
  237.    with (this.BOOK1.LABELPROCESSOR)
  238.       height = 1
  239.       left = 2
  240.       top = 2
  241.       width = 22
  242.       metric = 0
  243.       colorNormal = "BtnText"
  244.       fontName = "MS Sans Serif"
  245.       fontSize = 8
  246.       text = "Processor Type:"
  247.       pageno = 2
  248.    endwith
  249.  
  250.  
  251.    this.BOOK1.LABELNUMBERP = new TEXT(this.BOOK1)
  252.    with (this.BOOK1.LABELNUMBERP)
  253.       height = 1
  254.       left = 2
  255.       top = 3
  256.       width = 22
  257.       metric = 0
  258.       colorNormal = "BtnText"
  259.       fontName = "MS Sans Serif"
  260.       fontSize = 8
  261.       text = "Number of Processors:"
  262.       pageno = 2
  263.    endwith
  264.  
  265.  
  266.    this.BOOK1.VALUEPROCESSOR = new TEXT(this.BOOK1)
  267.    with (this.BOOK1.VALUEPROCESSOR)
  268.       height = 1
  269.       left = 25
  270.       top = 2
  271.       width = 25
  272.       metric = 0
  273.       colorNormal = "BtnText"
  274.       fontName = "MS Sans Serif"
  275.       fontSize = 8
  276.       text = "VALUEPROCESSOR"
  277.       pageno = 2
  278.    endwith
  279.  
  280.  
  281.    this.BOOK1.VALUENUMBERP = new TEXT(this.BOOK1)
  282.    with (this.BOOK1.VALUENUMBERP)
  283.       height = 1
  284.       left = 25
  285.       top = 3
  286.       width = 25
  287.       metric = 0
  288.       colorNormal = "BtnText"
  289.       fontName = "MS Sans Serif"
  290.       fontSize = 8
  291.       text = "VALUENUMBERP"
  292.       pageno = 2
  293.    endwith
  294.  
  295.  
  296.    this.BOOK1.HELPPROCESSOR = new TEXT(this.BOOK1)
  297.    with (this.BOOK1.HELPPROCESSOR)
  298.       height = 3.5
  299.       left = 2
  300.       top = 8
  301.       width = 69
  302.       border = true
  303.       metric = 0
  304.       colorNormal = "BtnText"
  305.       fontName = "MS Sans Serif"
  306.       fontSize = 8
  307.       text = "Processor information is available through the GetSystemInfo API function. This function requires a structure. The Win32api form uses the Structure class in structure.prg to define and retrieve information from a structure."
  308.       borderStyle = 2
  309.       pageno = 2
  310.    endwith
  311.  
  312.  
  313.    this.BOOK1.LABELBDEPATH = new TEXT(this.BOOK1)
  314.    with (this.BOOK1.LABELBDEPATH)
  315.       height = 1
  316.       left = 2
  317.       top = 5
  318.       width = 21
  319.       metric = 0
  320.       colorNormal = "BtnText"
  321.       fontName = "MS Sans Serif"
  322.       fontSize = 8
  323.       text = "DLL Path:"
  324.       pageno = 3
  325.    endwith
  326.  
  327.  
  328.    this.BOOK1.LABELTABLELEVEL = new TEXT(this.BOOK1)
  329.    with (this.BOOK1.LABELTABLELEVEL)
  330.       height = 1
  331.       left = 2
  332.       top = 3.4
  333.       width = 21
  334.       metric = 0
  335.       colorNormal = "BtnText"
  336.       fontName = "MS Sans Serif"
  337.       fontSize = 8
  338.       text = "dBASE Table Level:"
  339.       pageno = 3
  340.    endwith
  341.  
  342.  
  343.    this.BOOK1.LABELLOCALSHARE = new TEXT(this.BOOK1)
  344.    with (this.BOOK1.LABELLOCALSHARE)
  345.       height = 1
  346.       left = 2
  347.       top = 2
  348.       width = 21
  349.       metric = 0
  350.       colorNormal = "BtnText"
  351.       fontName = "MS Sans Serif"
  352.       fontSize = 8
  353.       text = "Local Share:"
  354.       pageno = 3
  355.    endwith
  356.  
  357.  
  358.    this.BOOK1.VALUEBDEPATH = new TEXT(this.BOOK1)
  359.    with (this.BOOK1.VALUEBDEPATH)
  360.       height = 2.25
  361.       left = 23.1429
  362.       top = 5
  363.       width = 45
  364.       metric = 0
  365.       colorNormal = "BtnText"
  366.       fontName = "MS Sans Serif"
  367.       fontSize = 8
  368.       text = "VALUEBDEPATH"
  369.       pageno = 3
  370.    endwith
  371.  
  372.  
  373.    this.BOOK1.VALUEDBASELEVEL = new TEXT(this.BOOK1)
  374.    with (this.BOOK1.VALUEDBASELEVEL)
  375.       height = 1.55
  376.       left = 23.1429
  377.       top = 3.4
  378.       width = 45
  379.       metric = 0
  380.       colorNormal = "BtnText"
  381.       fontName = "MS Sans Serif"
  382.       fontSize = 8
  383.       text = "VALUEDBASELEVEL"
  384.       pageno = 3
  385.    endwith
  386.  
  387.  
  388.    this.BOOK1.VALUELOCALSHARE = new TEXT(this.BOOK1)
  389.    with (this.BOOK1.VALUELOCALSHARE)
  390.       height = 1
  391.       left = 23.1429
  392.       top = 2
  393.       width = 45
  394.       metric = 0
  395.       colorNormal = "BtnText"
  396.       fontName = "MS Sans Serif"
  397.       fontSize = 8
  398.       text = "VALUELOCALSHARE"
  399.       pageno = 3
  400.    endwith
  401.  
  402.  
  403.    this.BOOK1.HELPMETRICS = new TEXT(this.BOOK1)
  404.    with (this.BOOK1.HELPMETRICS)
  405.       height = 3.5
  406.       left = 2
  407.       top = 8
  408.       width = 69
  409.       border = true
  410.       metric = 0
  411.       colorNormal = "BtnText"
  412.       fontName = "MS Sans Serif"
  413.       fontSize = 8
  414.       text = "The system metric values are available through the GetSystemMetrics API function. GetSystemMetrics takes and returns integer values. If you alter the orientation or Auto Hide property of the Windows Taskbar, you can click on refresh to update the client ar"
  415.       text += "ea values."
  416.       borderStyle = 2
  417.    endwith
  418.  
  419.  
  420.    this.BOOK1.HELPBDE = new TEXT(this.BOOK1)
  421.    with (this.BOOK1.HELPBDE)
  422.       height = 3.5
  423.       left = 2
  424.       top = 8
  425.       width = 69
  426.       border = true
  427.       metric = 0
  428.       colorNormal = "BtnText"
  429.       fontName = "MS Sans Serif"
  430.       fontSize = 8
  431.       text = "The Borland Database Engine stores configuration settings in the Windows registry. The Win32api form uses the Registry class in registry.prg to retrieve information from the registry. You can also use the Registry class to create and update registry keys."
  432.       borderStyle = 2
  433.       pageno = 3
  434.    endwith
  435.  
  436.  
  437.    this.BOOK1.LABELX = new TEXT(this.BOOK1)
  438.    with (this.BOOK1.LABELX)
  439.       height = 1
  440.       left = 51
  441.       top = 2
  442.       width = 9
  443.       metric = 0
  444.       colorNormal = "BtnText"
  445.       alignVertical = 2
  446.       alignHorizontal = 1
  447.       fontName = "MS Sans Serif"
  448.       fontSize = 8
  449.       text = "X"
  450.       pageno = 4
  451.    endwith
  452.  
  453.  
  454.    this.BOOK1.LABELY = new TEXT(this.BOOK1)
  455.    with (this.BOOK1.LABELY)
  456.       height = 1
  457.       left = 62
  458.       top = 2
  459.       width = 9
  460.       metric = 0
  461.       colorNormal = "BtnText"
  462.       alignVertical = 2
  463.       alignHorizontal = 1
  464.       fontName = "MS Sans Serif"
  465.       fontSize = 8
  466.       text = "Y"
  467.       pageno = 4
  468.    endwith
  469.  
  470.  
  471.    this.BOOK1.LABELTOP = new TEXT(this.BOOK1)
  472.    with (this.BOOK1.LABELTOP)
  473.       height = 1
  474.       left = 42
  475.       top = 3
  476.       width = 8
  477.       metric = 0
  478.       colorNormal = "BtnText"
  479.       alignVertical = 2
  480.       fontName = "MS Sans Serif"
  481.       fontSize = 8
  482.       text = "Top:"
  483.       pageno = 4
  484.    endwith
  485.  
  486.  
  487.    this.BOOK1.SPINLEFTRECT = new SPINBOX(this.BOOK1)
  488.    with (this.BOOK1.SPINLEFTRECT)
  489.       onChange = class::SPIN_ONCHANGE
  490.       height = 1
  491.       left = 51
  492.       top = 3
  493.       width = 9
  494.       metric = 0
  495.       picture = "99999"
  496.       colorHighLight = ""
  497.       step = 10
  498.       rangeMax = 32768
  499.       rangeMin = 0
  500.       fontName = "MS Sans Serif"
  501.       fontSize = 8
  502.       value = 20
  503.       validRequired = true
  504.       rangeRequired = true
  505.       pageno = 4
  506.       borderStyle = 7
  507.    endwith
  508.  
  509.  
  510.    this.BOOK1.SPINTOPRECT = new SPINBOX(this.BOOK1)
  511.    with (this.BOOK1.SPINTOPRECT)
  512.       onChange = class::SPIN_ONCHANGE
  513.       height = 1
  514.       left = 62
  515.       top = 3
  516.       width = 9
  517.       metric = 0
  518.       picture = "99999"
  519.       colorHighLight = ""
  520.       step = 10
  521.       rangeMax = 32768
  522.       rangeMin = 0
  523.       fontName = "MS Sans Serif"
  524.       fontSize = 8
  525.       value = 20
  526.       validRequired = true
  527.       rangeRequired = true
  528.       pageno = 4
  529.       borderStyle = 7
  530.    endwith
  531.  
  532.  
  533.    this.BOOK1.LABELBOTTOM = new TEXT(this.BOOK1)
  534.    with (this.BOOK1.LABELBOTTOM)
  535.       height = 1
  536.       left = 42
  537.       top = 4
  538.       width = 8
  539.       metric = 0
  540.       colorNormal = "BtnText"
  541.       alignVertical = 2
  542.       fontName = "MS Sans Serif"
  543.       fontSize = 8
  544.       text = "Bottom:"
  545.       pageno = 4
  546.    endwith
  547.  
  548.  
  549.    this.BOOK1.SPINRIGHTRECT = new SPINBOX(this.BOOK1)
  550.    with (this.BOOK1.SPINRIGHTRECT)
  551.       onChange = class::SPIN_ONCHANGE
  552.       height = 1
  553.       left = 51
  554.       top = 4
  555.       width = 9
  556.       metric = 0
  557.       picture = "99999"
  558.       colorHighLight = ""
  559.       step = 10
  560.       rangeMax = 32768
  561.       rangeMin = 0
  562.       fontName = "MS Sans Serif"
  563.       fontSize = 8
  564.       value = 160
  565.       validRequired = true
  566.       rangeRequired = true
  567.       pageno = 4
  568.       borderStyle = 7
  569.    endwith
  570.  
  571.  
  572.    this.BOOK1.SPINBOTTOMRECT = new SPINBOX(this.BOOK1)
  573.    with (this.BOOK1.SPINBOTTOMRECT)
  574.       onChange = class::SPIN_ONCHANGE
  575.       height = 1
  576.       left = 62
  577.       top = 4
  578.       width = 9
  579.       metric = 0
  580.       picture = "99999"
  581.       colorHighLight = ""
  582.       step = 10
  583.       rangeMax = 32768
  584.       rangeMin = 0
  585.       fontName = "MS Sans Serif"
  586.       fontSize = 8
  587.       value = 210
  588.       validRequired = true
  589.       rangeRequired = true
  590.       pageno = 4
  591.       borderStyle = 7
  592.    endwith
  593.  
  594.  
  595.    this.BOOK1.LABELSTART = new TEXT(this.BOOK1)
  596.    with (this.BOOK1.LABELSTART)
  597.       height = 1
  598.       left = 42
  599.       top = 5
  600.       width = 8
  601.       metric = 0
  602.       colorNormal = "BtnText"
  603.       alignVertical = 2
  604.       fontName = "MS Sans Serif"
  605.       fontSize = 8
  606.       text = "Start:"
  607.       pageno = 4
  608.    endwith
  609.  
  610.  
  611.    this.BOOK1.SPINXSTARTARC = new SPINBOX(this.BOOK1)
  612.    with (this.BOOK1.SPINXSTARTARC)
  613.       onChange = class::SPIN_ONCHANGE
  614.       height = 1
  615.       left = 51
  616.       top = 5
  617.       width = 9
  618.       metric = 0
  619.       picture = "99999"
  620.       colorHighLight = ""
  621.       step = 10
  622.       rangeMax = 32768
  623.       rangeMin = 0
  624.       fontName = "MS Sans Serif"
  625.       fontSize = 8
  626.       value = 150
  627.       validRequired = true
  628.       rangeRequired = true
  629.       pageno = 4
  630.       borderStyle = 7
  631.    endwith
  632.  
  633.  
  634.    this.BOOK1.SPINYSTARTARC = new SPINBOX(this.BOOK1)
  635.    with (this.BOOK1.SPINYSTARTARC)
  636.       onChange = class::SPIN_ONCHANGE
  637.       height = 1
  638.       left = 62
  639.       top = 5
  640.       width = 9
  641.       metric = 0
  642.       picture = "99999"
  643.       colorHighLight = ""
  644.       step = 10
  645.       rangeMax = 32768
  646.       rangeMin = 0
  647.       fontName = "MS Sans Serif"
  648.       fontSize = 8
  649.       value = 80
  650.       validRequired = true
  651.       rangeRequired = true
  652.       pageno = 4
  653.       borderStyle = 7
  654.    endwith
  655.  
  656.  
  657.    this.BOOK1.LABELEND = new TEXT(this.BOOK1)
  658.    with (this.BOOK1.LABELEND)
  659.       height = 1
  660.       left = 42
  661.       top = 6
  662.       width = 8
  663.       metric = 0
  664.       colorNormal = "BtnText"
  665.       alignVertical = 2
  666.       fontName = "MS Sans Serif"
  667.       fontSize = 8
  668.       text = "End:"
  669.       pageno = 4
  670.    endwith
  671.  
  672.  
  673.    this.BOOK1.SPINXENDARC = new SPINBOX(this.BOOK1)
  674.    with (this.BOOK1.SPINXENDARC)
  675.       onChange = class::SPIN_ONCHANGE
  676.       height = 1
  677.       left = 51
  678.       top = 6
  679.       width = 9
  680.       metric = 0
  681.       picture = "99999"
  682.       colorHighLight = ""
  683.       step = 10
  684.       rangeMax = 32768
  685.       rangeMin = 0
  686.       fontName = "MS Sans Serif"
  687.       fontSize = 8
  688.       value = 80
  689.       validRequired = true
  690.       rangeRequired = true
  691.       pageno = 4
  692.       borderStyle = 7
  693.    endwith
  694.  
  695.  
  696.    this.BOOK1.SPINYENDARC = new SPINBOX(this.BOOK1)
  697.    with (this.BOOK1.SPINYENDARC)
  698.       onChange = class::SPIN_ONCHANGE
  699.       height = 1
  700.       left = 62
  701.       top = 6
  702.       width = 9
  703.       metric = 0
  704.       picture = "99999"
  705.       colorHighLight = ""
  706.       step = 10
  707.       rangeMax = 32768
  708.       rangeMin = 0
  709.       fontName = "MS Sans Serif"
  710.       fontSize = 8
  711.       value = 100
  712.       validRequired = true
  713.       rangeRequired = true
  714.       pageno = 4
  715.       borderStyle = 7
  716.    endwith
  717.  
  718.  
  719.    this.BOOK1.HELPPAINTBOX = new TEXT(this.BOOK1)
  720.    with (this.BOOK1.HELPPAINTBOX)
  721.       height = 3.5
  722.       left = 2
  723.       top = 8
  724.       width = 69
  725.       border = true
  726.       metric = 0
  727.       colorNormal = "BtnText"
  728.       fontName = "MS Sans Serif"
  729.       fontSize = 8
  730.       text = "The PaintBox control allows you to draw directly to the control through the Windows API. This example shows how to draw an arc using the BeginPaint, Arc, EndPaint and InvalidateRect functions of the Windows API."
  731.       borderStyle = 2
  732.       pageno = 4
  733.    endwith
  734.  
  735.  
  736.    this.BOOK1.RECTANGLE1 = new RECTANGLE(this.BOOK1)
  737.    with (this.BOOK1.RECTANGLE1)
  738.       left = 1.3333
  739.       top = 1.4737
  740.       width = 38
  741.       height = 5.9091
  742.       metric = 0
  743.       text = ""
  744.       colorNormal = "WindowText/BtnFace"
  745.       border = false
  746.       fontName = "MS Sans Serif"
  747.       pageno = 4
  748.       borderStyle = 2
  749.    endwith
  750.  
  751.  
  752.    this.BOOK1.PAINTBOX1 = new PAINTBOX(this.BOOK1)
  753.    with (this.BOOK1.PAINTBOX1)
  754.       onPaint = class::PAINTARC
  755.       pageno = 4
  756.       colorNormal = "WindowText/Window"
  757.       height = 4.7273
  758.       left = 2.5714
  759.       top = 2
  760.       width = 35
  761.       metric = 0
  762.       transparent = true
  763.    endwith
  764.  
  765.  
  766.    this.BUTTONREFRESH = new PUSHBUTTON(this)
  767.    with (this.BUTTONREFRESH)
  768.       onClick = class::BUTTONREFRESH_ONCLICK
  769.       height = 1.1818
  770.       left = 42.4286
  771.       top = 13.5
  772.       width = 14
  773.       text = "Refresh"
  774.       metric = 0
  775.       fontName = "MS Sans Serif"
  776.       fontSize = 8
  777.       group = true
  778.       colorNormal = "BtnText/BtnFace"
  779.       value = false
  780.    endwith
  781.  
  782.  
  783.    // {Linked Method} form.book1.onSelChange
  784.    function BOOK1_onSelChange
  785.       this.form.buttonRefresh.enabled = ( this.cursel == 1)
  786.    return ( this.curSel )
  787.  
  788.    // {Linked Method} form.buttonrefresh.onClick
  789.    function BUTTONREFRESH_OnClick
  790.    return ( class::GetMetrics( this.form.book1 ) )
  791.  
  792.    // {Linked Method} form.open
  793.    function Form_Open
  794.       local bOpen
  795.  
  796.       // If running as a compiled app, check
  797.       // for strucmem.dll
  798.       if ( "runtime" $ LOWER( VERSION(0) ) )
  799.          this.mdi := false
  800.          if ( ( not FILE("strucmem.dll") ) and FILE("strucmem.dll",true) )
  801.             COPY FILE "strucmem.dll" TO "strucmem.dll"
  802.          endif
  803.       endif
  804.  
  805.       class::GetMetrics( this.book1 )
  806.       class::GetProcessorInfo( this.book1 )
  807.       class::GetBDERegistry( this.book1 ) 
  808.  
  809.       this.book1.cursel := 1 
  810.       bOpen = WIN32APIFORM::Open()
  811.       this.showFormatBar(false)
  812.     return ( bOpen )
  813.  
  814.    function GetMetrics( thisBook )
  815.       // This member function calls a Windows API function
  816.       // that returns an integer. The values passed are defined
  817.       // in WINUSER.H. The extern for the GetSystemMetrics 
  818.       // was called from WINAPI.H.
  819.  
  820.       with ( thisBook )
  821.          VALUEMOUSE.text  := LTRIM(STR(GetSystemMetrics(SM_CMOUSEBUTTONS)))
  822.          VALUEWIDTH.text  := LTRIM(STR(GetSystemMetrics(SM_CXFULLSCREEN)))
  823.          VALUEHEIGHT.text := LTRIM(STR(GetSystemMetrics(SM_CYFULLSCREEN)))
  824.          VALUEPEN.text    := ;
  825.             IIF( GetSystemMetrics(SM_PENWINDOWS) == 0,"Not found","Installed")
  826.          VALUESOUND.text  := ;
  827.             IIF( GetSystemMetrics(SM_SHOWSOUNDS) == 0,"Off","On")
  828.       endwith
  829.    return true
  830.  
  831.    function GetProcessorInfo(thisBook)
  832.       // This member function calls a Windows API function that 
  833.       // requires a structure. The structure is defined in
  834.       // the structSystemInfo class and it relies on the 
  835.       // structure API and classes found in STRUCTAPI.PRG,
  836.       // STRUCTURE.PRG and constants defined in STRUCTAPI.H
  837.  
  838.       local structSystemInfo, nProcessor, nNumberP
  839.  
  840.       structSysInfo = new SYSTEM_INFO()
  841.       GetSystemInfo( structSysInfo.value )
  842.       if ( "NT"$ OS() )
  843.          nProcessor = structSysInfo.getMember("wProcessorLevel")
  844.       else
  845.          nProcessor = structSysInfo.getMember("dwProcessorType")
  846.       endif
  847.       nNumberP   = structSysInfo.getMember("dwNumberOfProcessors")
  848.  
  849.       do case
  850.          case ( nProcessor == 3 )
  851.               thisBook.VALUEPROCESSOR.text := "386"
  852.          case ( nProcessor == 4 )
  853.               thisBook.VALUEPROCESSOR.text := "486"
  854.          case ( nProcessor == 5 OR nProcessor == 586)
  855.               thisBook.VALUEPROCESSOR.text := "Pentium"
  856.          case ( nProcessor == 6 )
  857.               thisBook.VALUEPROCESSOR.text := "Pentium" // Pro or II
  858.          otherwise
  859.               thisBook.VALUEPROCESSOR.text := ;
  860.                  LTRIM( RTRIM( STR( nProcessor ) ) )
  861.       endcase
  862.       thisBook.VALUENUMBERP.text = LTRIM(STR(nNumberP))
  863.    return ( nProcessor )
  864.    
  865.  
  866.    function GetBDERegistry( thisBook )
  867.        local reg
  868.        private xLevel
  869.        reg = new Registry(HKEY_LOCAL_MACHINE, ;
  870.             "SOFTWARE\Borland\Database Engine" )
  871.        thisBook.VALUEBDEPATH.text := reg.queryValue("DLLPATH")
  872.        reg.close()
  873.  
  874.        reg = new Registry(HKEY_LOCAL_MACHINE, ;
  875.             "SOFTWARE\Borland\Database Engine\Settings" + ;
  876.             "\DRIVERS\DBASE\TABLE CREATE" )
  877.        xLevel = reg.queryValue("LEVEL")
  878.        reg.close()
  879.        if ( TYPE("xLevel") == "C" )
  880.           thisBook.VALUEDBASELEVEL.text := xLevel
  881.        else
  882.           thisBook.VALUEDBASELEVEL.fontItalic := true
  883.           thisBook.VALUEDBASELEVEL.text := "(not stored in registry - BDE configuration is in WIN31 compatibility mode)"
  884.        endif
  885.  
  886.        reg = new Registry(HKEY_LOCAL_MACHINE, ;
  887.             "SOFTWARE\Borland\Database Engine\Settings" + ;
  888.             "\SYSTEM\INIT" )
  889.        thisBook.VALUELOCALSHARE.text := reg.queryValue("LOCAL SHARE")
  890.  
  891.    return ( reg.close() )
  892.    
  893.  
  894.    // {Linked Method} form.book1.spinxstartarc.onChange
  895.    // {Linked Method} form.book1.spinbottomrect.onChange
  896.    // {Linked Method} form.book1.spinrightrect.onChange
  897.    // {Linked Method} form.book1.spintoprect.onChange
  898.    // {Linked Method} form.book1.spinleftrect.onChange
  899.    // {Linked Method} form.book1.spinyendarc.onChange
  900.    // {Linked Method} form.book1.spinxendarc.onChange
  901.    // {Linked Method} form.book1.spinystartarc.onChange
  902.    function SPIN_onChange
  903.    return ( InvalidateRect( this.form.book1.paintbox1.hwnd, 0, true ) )      
  904.  
  905.    // {Linked Method} form.book1.paintbox1.onPaint
  906.    function paintArc
  907.       local paintStruct, hdc, bPaint
  908.       paintStruct = new tagPaintStruct()
  909.       hdc = BeginPaint( this.hWnd, paintStruct.value )
  910.       Arc(hdc, this.form.book1.spinLeftRect.value, ;
  911.                this.form.book1.spinTopRect.value, ;
  912.                this.form.book1.spinRightRect.value, ;
  913.                this.form.book1.spinBottomRect.value, ;
  914.                this.form.book1.spinXStartArc.value, ;
  915.                this.form.book1.spinYStartArc.value, ;
  916.                this.form.book1.spinXEndArc.value, ;
  917.                this.form.book1.spinYEndArc.value )
  918.       bPaint = EndPaint( this.hWnd, paintStruct.value )
  919.    return (bPaint)
  920.    
  921. endclass
  922.  
  923. class SYSTEM_INFO of Structure
  924.    super::addMember( TYPE_WORD,   "wProcessor" )
  925.    super::addMember( TYPE_WORD,   "wReserved" )
  926.    super::addMember( TYPE_DWORD,  "dwPageSize" )
  927.    super::addMember( TYPE_LPVOID, "lpMinimumApplicationAddress" )
  928.    super::addMember( TYPE_LPVOID, "lpMaximumApplicatoinAddress" )
  929.    super::addMember( TYPE_DWORD,  "dwActiveProcessorMask" )
  930.    super::addMember( TYPE_DWORD,  "dwNumberOfProcessors" )
  931.    super::addMember( TYPE_DWORD,  "dwProcessorType" )
  932.    super::addMember( TYPE_DWORD,  "dwAllocationGranularity"  )
  933.    super::addMember( TYPE_WORD,   "wProcessorLevel" )
  934.    super::addMember( TYPE_WORD,   "wProcessorRevision" )  
  935. endclass
  936.  
  937. class tagPAINTSTRUCT of Structure
  938.    super::addMember( TYPE_HDC, "hdc" )
  939.    super::addMember( TYPE_BOOL, "fErase" )
  940.    super::addMember( TYPE_RECT, "rcPaint" )
  941.    super::addMember( TYPE_BOOL, "fRestore" )
  942.    super::addMember( TYPE_BOOL, "fIncUpdate"  )
  943.    super::addMember( TYPE_STRING, "rgbReserved", 32)
  944. endclass
  945.